Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

5.3K
Visualizações
FastAPI arroja un error (Error al cargar la aplicación ASGI. No se pudo importar el módulo "api")

Traté de ejecutar FastAPI usando el servidor web uvicorn pero arroja un error.

Ejecuto este comando,

uvicorn api:app --reload --host 0.0.0.0

pero hay un error en la terminal.

 Uvicorn running on http://0.0.0.0:8000 (Press CTRL+C to quit) Started reloader process [23445] Error loading ASGI app. Could not import module "api". Stopping reloader process [23445]

Agradezco mucho cualquier recomendación o sugerencia

over 4 years ago · Santiago Trujillo
9 Respostas
Responde à pergunta

0

su error tipográfico en "api" verifique su nombre de archivo.

over 4 years ago · Santiago Trujillo Relatório

0

TL;DR

Agregue el nombre del directorio delante de su nombre de archivo

 uvicorn src.main:app

o cd en ese directorio

 cd src uvicorn main:app

Respuesta larga

Ocurre porque no está en la misma carpeta con su instancia de la aplicación FastAPI más específicamente:

Digamos que tengo un árbol de aplicaciones como este;

 my_fastapi_app/ ├── app.yaml ├── docker-compose.yml ├── src │  └── main.py └── tests ├── test_xx.py └── test_yy.py $ pwd # Present Working Directory /home/yagiz/Desktop/my_fastapi_app

No estoy dentro de la misma carpeta con la instancia de mi aplicación, por lo que si intento ejecutar mi aplicación con uvicorn, obtendré un error como el tuyo.

 $ uvicorn main:app --reload INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [40645] using statreload ERROR: Error loading ASGI app. Could not import module "main".

La respuesta es muy simple, agregue el nombre de la carpeta delante de su nombre de archivo

 uvicorn src.main:app --reload

o puede cambiar su directorio de trabajo

 cd src

Ahora estoy dentro de la carpeta con la instancia de mi aplicación.

 src └── main.py

Ejecuta tu uvicornio de nuevo

 $ uvicorn main:app --reload INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) INFO: Started reloader process [40726] using statreload INFO: Started server process [40728] INFO: Waiting for application startup. INFO: Application startup complete.
over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema y lo resolví agregando el nombre del paquete antes de main, en tu caso probando:

 uvicorn src.main:app --reload

puede resolver el problema

over 4 years ago · Santiago Trujillo Relatório

0

Esto funcionó para mí, mire los documentos para fastAPI. Estoy muy agradecido de haberlo encontrado, ya que el script de Python debe llamarse main.py no app.py

El comando uvicorn main:app se refiere a:

  1. main : el archivo main.py (el "módulo" de Python).
  2. app : el objeto creado dentro de main.py con la línea app = FastAPI()
  3. --reload : hace que el servidor se reinicie después de cambios en el código. Uso exclusivo para desarrollo.
over 4 years ago · Santiago Trujillo Relatório

0

Una razón por la que esto podría estar sucediendo es que está utilizando:

 uvicorn src/main:app --reload

en lugar de la sintaxis correcta :

 uvicorn src.main:app --reload

Note el . en lugar de la /


Eso suponiendo que (1) su estructura sea algo como esto:

 project_folder/ ├── some_folder ├── src │ └── main.py └── tests ├── test_xx.py └── test_yy.py

(2) que su objeto FastAPI() está efectivamente asignado a un objeto llamado app en main.py :

 app = FastAPI()

(3) está ejecutando el comando uvicorn desde project_folder , por ejemplo:

 (venv) <username>@<pcname>:~/PycharmProjects/project_folder$ uvicorn src.main:app --reload
over 4 years ago · Santiago Trujillo Relatório

0

Parece que es importante que nombre su archivo main.py, de lo contrario no funcionará.

Editar: en realidad, estaba ejecutando Jupyter Notebook en el puerto 8888, por lo que ese puerto ya estaba ocupado. Si tiene que ejecutar el cuaderno Jupyter, ejecútelo después de ejecutar el servidor API, el cuaderno se ejecutará automáticamente en 8889. Alternativamente, puede ejecutar el servidor API en un puerto diferente.

over 4 years ago · Santiago Trujillo Relatório

0

Presione el botón Guardar en VS Code, etc. porque a veces arrojará este error si no ha guardado el archivo. Me sucedió.

over 4 years ago · Santiago Trujillo Relatório

0

mover la declaración de importación para FastAPI a la parte superior de las declaraciones de importación corrige el error.

from fastapi import FastAPI "luego cualquier otra declaración de importación"

over 4 years ago · Santiago Trujillo Relatório

0

Use esta estructura de carpetas y configuración donde main está en el directorio principal ingrese la descripción de la imagen aquí

lanzamiento.json

 { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "Python: FastAPI", "type": "python", "request": "launch", "module": "uvicorn", "args": [ "main:app" ], "jinja": true } ] }

principal.py

 from fastapi import FastAPI app = FastAPI( title="test", description="test", version="0.0.1", ) if __name__ == "__main__": import uvicorn uvicorn.run( "main:app", host="0.0.0.0", reload=True, port=3001, )
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda